github.com/expr-lang/expr@v1.16.9/vm/func_types[generated].go (about)

     1  // Code generated by vm/func_types/main.go. DO NOT EDIT.
     2  
     3  package vm
     4  
     5  import (
     6  	"fmt"
     7  	"time"
     8  )
     9  
    10  var FuncTypes = []any{
    11  	1:  new(func() time.Duration),
    12  	2:  new(func() time.Month),
    13  	3:  new(func() time.Time),
    14  	4:  new(func() time.Weekday),
    15  	5:  new(func() []interface{}),
    16  	6:  new(func() []uint8),
    17  	7:  new(func() interface{}),
    18  	8:  new(func() bool),
    19  	9:  new(func() uint8),
    20  	10: new(func() float32),
    21  	11: new(func() float64),
    22  	12: new(func() int),
    23  	13: new(func() int16),
    24  	14: new(func() int32),
    25  	15: new(func() int64),
    26  	16: new(func() int8),
    27  	17: new(func() map[string]interface{}),
    28  	18: new(func() int32),
    29  	19: new(func() string),
    30  	20: new(func() uint),
    31  	21: new(func() uint16),
    32  	22: new(func() uint32),
    33  	23: new(func() uint64),
    34  	24: new(func() uint8),
    35  	25: new(func(time.Duration) time.Duration),
    36  	26: new(func(time.Duration) time.Time),
    37  	27: new(func(time.Time) time.Duration),
    38  	28: new(func(time.Time) bool),
    39  	29: new(func([]interface{}) []interface{}),
    40  	30: new(func([]interface{}) interface{}),
    41  	31: new(func([]interface{}) map[string]interface{}),
    42  	32: new(func([]interface{}, string) string),
    43  	33: new(func([]uint8) string),
    44  	34: new(func([]string, string) string),
    45  	35: new(func(interface{}) []interface{}),
    46  	36: new(func(interface{}) interface{}),
    47  	37: new(func(interface{}) bool),
    48  	38: new(func(interface{}) float64),
    49  	39: new(func(interface{}) int),
    50  	40: new(func(interface{}) map[string]interface{}),
    51  	41: new(func(interface{}) string),
    52  	42: new(func(interface{}, interface{}) []interface{}),
    53  	43: new(func(interface{}, interface{}) interface{}),
    54  	44: new(func(interface{}, interface{}) bool),
    55  	45: new(func(interface{}, interface{}) string),
    56  	46: new(func(bool) bool),
    57  	47: new(func(bool) float64),
    58  	48: new(func(bool) int),
    59  	49: new(func(bool) string),
    60  	50: new(func(bool, bool) bool),
    61  	51: new(func(float32) float64),
    62  	52: new(func(float64) bool),
    63  	53: new(func(float64) float32),
    64  	54: new(func(float64) float64),
    65  	55: new(func(float64) int),
    66  	56: new(func(float64) string),
    67  	57: new(func(float64, float64) bool),
    68  	58: new(func(int) bool),
    69  	59: new(func(int) float64),
    70  	60: new(func(int) int),
    71  	61: new(func(int) string),
    72  	62: new(func(int, int) bool),
    73  	63: new(func(int, int) int),
    74  	64: new(func(int, int) string),
    75  	65: new(func(int16) int32),
    76  	66: new(func(int32) float64),
    77  	67: new(func(int32) int),
    78  	68: new(func(int32) int64),
    79  	69: new(func(int64) time.Time),
    80  	70: new(func(int8) int),
    81  	71: new(func(int8) int16),
    82  	72: new(func(string) []uint8),
    83  	73: new(func(string) []string),
    84  	74: new(func(string) bool),
    85  	75: new(func(string) float64),
    86  	76: new(func(string) int),
    87  	77: new(func(string) string),
    88  	78: new(func(string, uint8) int),
    89  	79: new(func(string, int) int),
    90  	80: new(func(string, int32) int),
    91  	81: new(func(string, string) bool),
    92  	82: new(func(string, string) string),
    93  	83: new(func(uint) float64),
    94  	84: new(func(uint) int),
    95  	85: new(func(uint) uint),
    96  	86: new(func(uint16) uint),
    97  	87: new(func(uint32) uint64),
    98  	88: new(func(uint64) float64),
    99  	89: new(func(uint64) int64),
   100  	90: new(func(uint8) uint8),
   101  }
   102  
   103  func (vm *VM) call(fn any, kind int) any {
   104  	switch kind {
   105  	case 1:
   106  		return fn.(func() time.Duration)()
   107  	case 2:
   108  		return fn.(func() time.Month)()
   109  	case 3:
   110  		return fn.(func() time.Time)()
   111  	case 4:
   112  		return fn.(func() time.Weekday)()
   113  	case 5:
   114  		return fn.(func() []interface{})()
   115  	case 6:
   116  		return fn.(func() []uint8)()
   117  	case 7:
   118  		return fn.(func() interface{})()
   119  	case 8:
   120  		return fn.(func() bool)()
   121  	case 9:
   122  		return fn.(func() uint8)()
   123  	case 10:
   124  		return fn.(func() float32)()
   125  	case 11:
   126  		return fn.(func() float64)()
   127  	case 12:
   128  		return fn.(func() int)()
   129  	case 13:
   130  		return fn.(func() int16)()
   131  	case 14:
   132  		return fn.(func() int32)()
   133  	case 15:
   134  		return fn.(func() int64)()
   135  	case 16:
   136  		return fn.(func() int8)()
   137  	case 17:
   138  		return fn.(func() map[string]interface{})()
   139  	case 18:
   140  		return fn.(func() int32)()
   141  	case 19:
   142  		return fn.(func() string)()
   143  	case 20:
   144  		return fn.(func() uint)()
   145  	case 21:
   146  		return fn.(func() uint16)()
   147  	case 22:
   148  		return fn.(func() uint32)()
   149  	case 23:
   150  		return fn.(func() uint64)()
   151  	case 24:
   152  		return fn.(func() uint8)()
   153  	case 25:
   154  		arg1 := vm.pop().(time.Duration)
   155  		return fn.(func(time.Duration) time.Duration)(arg1)
   156  	case 26:
   157  		arg1 := vm.pop().(time.Duration)
   158  		return fn.(func(time.Duration) time.Time)(arg1)
   159  	case 27:
   160  		arg1 := vm.pop().(time.Time)
   161  		return fn.(func(time.Time) time.Duration)(arg1)
   162  	case 28:
   163  		arg1 := vm.pop().(time.Time)
   164  		return fn.(func(time.Time) bool)(arg1)
   165  	case 29:
   166  		arg1 := vm.pop().([]interface{})
   167  		return fn.(func([]interface{}) []interface{})(arg1)
   168  	case 30:
   169  		arg1 := vm.pop().([]interface{})
   170  		return fn.(func([]interface{}) interface{})(arg1)
   171  	case 31:
   172  		arg1 := vm.pop().([]interface{})
   173  		return fn.(func([]interface{}) map[string]interface{})(arg1)
   174  	case 32:
   175  		arg2 := vm.pop().(string)
   176  		arg1 := vm.pop().([]interface{})
   177  		return fn.(func([]interface{}, string) string)(arg1, arg2)
   178  	case 33:
   179  		arg1 := vm.pop().([]uint8)
   180  		return fn.(func([]uint8) string)(arg1)
   181  	case 34:
   182  		arg2 := vm.pop().(string)
   183  		arg1 := vm.pop().([]string)
   184  		return fn.(func([]string, string) string)(arg1, arg2)
   185  	case 35:
   186  		arg1 := vm.pop()
   187  		return fn.(func(interface{}) []interface{})(arg1)
   188  	case 36:
   189  		arg1 := vm.pop()
   190  		return fn.(func(interface{}) interface{})(arg1)
   191  	case 37:
   192  		arg1 := vm.pop()
   193  		return fn.(func(interface{}) bool)(arg1)
   194  	case 38:
   195  		arg1 := vm.pop()
   196  		return fn.(func(interface{}) float64)(arg1)
   197  	case 39:
   198  		arg1 := vm.pop()
   199  		return fn.(func(interface{}) int)(arg1)
   200  	case 40:
   201  		arg1 := vm.pop()
   202  		return fn.(func(interface{}) map[string]interface{})(arg1)
   203  	case 41:
   204  		arg1 := vm.pop()
   205  		return fn.(func(interface{}) string)(arg1)
   206  	case 42:
   207  		arg2 := vm.pop()
   208  		arg1 := vm.pop()
   209  		return fn.(func(interface{}, interface{}) []interface{})(arg1, arg2)
   210  	case 43:
   211  		arg2 := vm.pop()
   212  		arg1 := vm.pop()
   213  		return fn.(func(interface{}, interface{}) interface{})(arg1, arg2)
   214  	case 44:
   215  		arg2 := vm.pop()
   216  		arg1 := vm.pop()
   217  		return fn.(func(interface{}, interface{}) bool)(arg1, arg2)
   218  	case 45:
   219  		arg2 := vm.pop()
   220  		arg1 := vm.pop()
   221  		return fn.(func(interface{}, interface{}) string)(arg1, arg2)
   222  	case 46:
   223  		arg1 := vm.pop().(bool)
   224  		return fn.(func(bool) bool)(arg1)
   225  	case 47:
   226  		arg1 := vm.pop().(bool)
   227  		return fn.(func(bool) float64)(arg1)
   228  	case 48:
   229  		arg1 := vm.pop().(bool)
   230  		return fn.(func(bool) int)(arg1)
   231  	case 49:
   232  		arg1 := vm.pop().(bool)
   233  		return fn.(func(bool) string)(arg1)
   234  	case 50:
   235  		arg2 := vm.pop().(bool)
   236  		arg1 := vm.pop().(bool)
   237  		return fn.(func(bool, bool) bool)(arg1, arg2)
   238  	case 51:
   239  		arg1 := vm.pop().(float32)
   240  		return fn.(func(float32) float64)(arg1)
   241  	case 52:
   242  		arg1 := vm.pop().(float64)
   243  		return fn.(func(float64) bool)(arg1)
   244  	case 53:
   245  		arg1 := vm.pop().(float64)
   246  		return fn.(func(float64) float32)(arg1)
   247  	case 54:
   248  		arg1 := vm.pop().(float64)
   249  		return fn.(func(float64) float64)(arg1)
   250  	case 55:
   251  		arg1 := vm.pop().(float64)
   252  		return fn.(func(float64) int)(arg1)
   253  	case 56:
   254  		arg1 := vm.pop().(float64)
   255  		return fn.(func(float64) string)(arg1)
   256  	case 57:
   257  		arg2 := vm.pop().(float64)
   258  		arg1 := vm.pop().(float64)
   259  		return fn.(func(float64, float64) bool)(arg1, arg2)
   260  	case 58:
   261  		arg1 := vm.pop().(int)
   262  		return fn.(func(int) bool)(arg1)
   263  	case 59:
   264  		arg1 := vm.pop().(int)
   265  		return fn.(func(int) float64)(arg1)
   266  	case 60:
   267  		arg1 := vm.pop().(int)
   268  		return fn.(func(int) int)(arg1)
   269  	case 61:
   270  		arg1 := vm.pop().(int)
   271  		return fn.(func(int) string)(arg1)
   272  	case 62:
   273  		arg2 := vm.pop().(int)
   274  		arg1 := vm.pop().(int)
   275  		return fn.(func(int, int) bool)(arg1, arg2)
   276  	case 63:
   277  		arg2 := vm.pop().(int)
   278  		arg1 := vm.pop().(int)
   279  		return fn.(func(int, int) int)(arg1, arg2)
   280  	case 64:
   281  		arg2 := vm.pop().(int)
   282  		arg1 := vm.pop().(int)
   283  		return fn.(func(int, int) string)(arg1, arg2)
   284  	case 65:
   285  		arg1 := vm.pop().(int16)
   286  		return fn.(func(int16) int32)(arg1)
   287  	case 66:
   288  		arg1 := vm.pop().(int32)
   289  		return fn.(func(int32) float64)(arg1)
   290  	case 67:
   291  		arg1 := vm.pop().(int32)
   292  		return fn.(func(int32) int)(arg1)
   293  	case 68:
   294  		arg1 := vm.pop().(int32)
   295  		return fn.(func(int32) int64)(arg1)
   296  	case 69:
   297  		arg1 := vm.pop().(int64)
   298  		return fn.(func(int64) time.Time)(arg1)
   299  	case 70:
   300  		arg1 := vm.pop().(int8)
   301  		return fn.(func(int8) int)(arg1)
   302  	case 71:
   303  		arg1 := vm.pop().(int8)
   304  		return fn.(func(int8) int16)(arg1)
   305  	case 72:
   306  		arg1 := vm.pop().(string)
   307  		return fn.(func(string) []uint8)(arg1)
   308  	case 73:
   309  		arg1 := vm.pop().(string)
   310  		return fn.(func(string) []string)(arg1)
   311  	case 74:
   312  		arg1 := vm.pop().(string)
   313  		return fn.(func(string) bool)(arg1)
   314  	case 75:
   315  		arg1 := vm.pop().(string)
   316  		return fn.(func(string) float64)(arg1)
   317  	case 76:
   318  		arg1 := vm.pop().(string)
   319  		return fn.(func(string) int)(arg1)
   320  	case 77:
   321  		arg1 := vm.pop().(string)
   322  		return fn.(func(string) string)(arg1)
   323  	case 78:
   324  		arg2 := vm.pop().(uint8)
   325  		arg1 := vm.pop().(string)
   326  		return fn.(func(string, uint8) int)(arg1, arg2)
   327  	case 79:
   328  		arg2 := vm.pop().(int)
   329  		arg1 := vm.pop().(string)
   330  		return fn.(func(string, int) int)(arg1, arg2)
   331  	case 80:
   332  		arg2 := vm.pop().(int32)
   333  		arg1 := vm.pop().(string)
   334  		return fn.(func(string, int32) int)(arg1, arg2)
   335  	case 81:
   336  		arg2 := vm.pop().(string)
   337  		arg1 := vm.pop().(string)
   338  		return fn.(func(string, string) bool)(arg1, arg2)
   339  	case 82:
   340  		arg2 := vm.pop().(string)
   341  		arg1 := vm.pop().(string)
   342  		return fn.(func(string, string) string)(arg1, arg2)
   343  	case 83:
   344  		arg1 := vm.pop().(uint)
   345  		return fn.(func(uint) float64)(arg1)
   346  	case 84:
   347  		arg1 := vm.pop().(uint)
   348  		return fn.(func(uint) int)(arg1)
   349  	case 85:
   350  		arg1 := vm.pop().(uint)
   351  		return fn.(func(uint) uint)(arg1)
   352  	case 86:
   353  		arg1 := vm.pop().(uint16)
   354  		return fn.(func(uint16) uint)(arg1)
   355  	case 87:
   356  		arg1 := vm.pop().(uint32)
   357  		return fn.(func(uint32) uint64)(arg1)
   358  	case 88:
   359  		arg1 := vm.pop().(uint64)
   360  		return fn.(func(uint64) float64)(arg1)
   361  	case 89:
   362  		arg1 := vm.pop().(uint64)
   363  		return fn.(func(uint64) int64)(arg1)
   364  	case 90:
   365  		arg1 := vm.pop().(uint8)
   366  		return fn.(func(uint8) uint8)(arg1)
   367  
   368  	}
   369  	panic(fmt.Sprintf("unknown function kind (%v)", kind))
   370  }